package lumis.portal.crypto;


import lumis.portal.PortalException;
import lumis.portal.stability.StableMinor;

import org.w3c.dom.Node;

/**
 * Interface to be implemented by customized ciphers.
 * <p>
 * To create a customized cipher, create a class that implements this interface,
 * and configure <code>lumisportalconfig.xml</code> to use that class.
 * <p>
 * Also consider extending {@link AbstractCipher} instead of implementing this
 * interface directly.
 *
 * @version $Revision: 13082 $ $Date: 2011-05-27 16:03:12 -0300 (Fri, 27 May 2011) $
 * @since 5.5.0
 */
@StableMinor(version = "6.0", sinceVersion = "5.5")
public interface ICipherSpi extends ICipher
{
	/**
	 * This method is called only once and before any other method are called.
	 * This allows the cipher to initialize itself and read any
	 * custom configuration.
	 * @since 5.5.0
	 */
	public void init(Node configuration) throws PortalException;
}
